// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "Widgets/Views/STreeView.h"
#include "HotPakerType.generated.h"

USTRUCT(BlueprintType)
struct HOTPAKER_API FAssetDetailNode
{
	GENERATED_BODY()

public:

	FAssetDetailNode() {}

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		FName PackageName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		FString Guid;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		TArray<int32> ChunkIDs;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		FString Chunks;

	// is already reference by other 
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		bool IsReferenced;

	TMap<FName, TSharedRef<FAssetDetailNode>> DependenceAssets;

};

using FAssetDetailNode_Ref = TSharedRef<FAssetDetailNode>;
using SAssetsViewTree = STreeView<FAssetDetailNode_Ref>;

UCLASS()
class HOTPAKER_API UAssetDependenceInfo : public UObject
{
	GENERATED_BODY()

public:


};


USTRUCT(BlueprintType)
struct HOTPAKER_API FHotPakerPakFile
{
	GENERATED_BODY()

public:

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		FString PakName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		FString FilePath;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		FString MountPath;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		TArray<FName> PakAssets;
};

/**
 *
 */
UCLASS()
class HOTPAKER_API UHotPakerType : public UObject
{
	GENERATED_BODY()

};
